package com.ychs.lawyer.controller;

import com.ychs.lawyer.bean.R;
import com.ychs.lawyer.util.UUIDutilsu;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: clh
 * @Date: 2024/07/31/16:27
 * @Description:
 */
@Api(tags = "上传文件")
@RestController
public class upload {
    @Value("${pictureFile.path}")
    private String picturePath;

    @Value("${pictureFile.path-mapping}")
    private String picturePath_mapping;

    @PostMapping("/upload/img")
    public R upload(MultipartFile file) {
//         获取上传文件的原始文件名
        String fileName = file.getOriginalFilename();  // 文件名
//提取出文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));  // 后缀名

        fileName = UUIDutilsu.getUUID() + suffixName; // 新文件名

//如果在文件保存过程中出现 IOException （输入输出异常），会打印异常的堆栈信息。
        File dest = new File(picturePath + fileName);
//    检查其父目录是否存在。如果不存在，就创建父目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            //使用 file.transferTo(dest) 尝试将上传的文件内容保存到指定的位置。
            file.transferTo(dest);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String final_fileName = "http://localhost:8889" + picturePath_mapping + fileName;
        System.out.println(final_fileName);
        return R.success(final_fileName);
    }
}
